package com.kaifamiao.exercises.base;

public class OneHundredPrime2 {
    public static void main(String[] args) {

        // 确定总共需要寻找多少个质数
        final int amount = 100;
        // 用于统计质数的个数
        int counter = 0;
        // 定义一个用来表示自然数的变量
        int n = 2;
        while( counter < amount ){
            // 假设 n 是个质数
            boolean isPrime = true;
            double s = Math.sqrt(n);
            // 检查 n 是否可以被 [ 2 , Math.sqrt(n) ] 之间的自然数整除
            for( int j = 2; j <= s ; j++ ){
                if( n % j == 0 ){
                    isPrime = false; // 推翻假设
                    break; // 终止当前循环
                }
            }
            // 若 n 是个质数则对 counter 加一
            if( isPrime ) {
                counter++;
                System.out.printf( "%d\t" , n );
                if( counter % 10 == 0 ) {
                    System.out.println();
                }
            }
            // 得到下一个自然数
            n++ ;
        }

    }
}
